package hh.proxy.cglib;

/**
 * 这个类是从内存中使用hsdb工具弄下来，再使用idea反编译，然后手动修改其中的编译错误而来的 <br>
 *
 * 这个类是一个FastClass,而且他是FastClass1
 * @author hh
 * @date 2020/9/29
 */
import net.sf.cglib.core.Signature;
import net.sf.cglib.reflect.FastClass;

import java.lang.reflect.InvocationTargetException;

public class CglibDemo$$FastClassByCGLIB$$4320d206 extends FastClass {
    public Object invoke(int var1, Object var2, Object[] var3) throws InvocationTargetException {
        CglibDemo var10000 = (CglibDemo)var2;
        int var10001 = var1;

        try {
            switch(var10001) {
                case 0:
                    CglibDemo.main((String[])var3[0]);
                    return null;
                case 1:
                    return var10000.getName();
                case 2:
                    var10000.setName((String)var3[0]);
                    return null;
                case 3:
                    return new Boolean(var10000.equals(var3[0]));
                case 4:
                    return var10000.toString();
                case 5:
                    return new Integer(var10000.hashCode());
            }
        } catch (Throwable var4) {
            throw new InvocationTargetException(var4);
        }

        throw new IllegalArgumentException("Cannot find matching method/constructor");
    }

    public CglibDemo$$FastClassByCGLIB$$4320d206(Class var1) {
        super(var1);
    }

    public Object newInstance(int var1, Object[] var2) throws InvocationTargetException {
        CglibDemo var10000 = new CglibDemo();
        CglibDemo var10001 = var10000;
        int var10002 = var1;

        try {
            switch(var10002) {
                case 0:
                    // var10001.<init>();
                    return var10000;
            }
        } catch (Throwable var3) {
            throw new InvocationTargetException(var3);
        }

        throw new IllegalArgumentException("Cannot find matching method/constructor");
    }

    public int getIndex(Class[] var1) {
        switch(var1.length) {
            case 0:
                return 0;
            default:
                return -1;
        }
    }

    public int getIndex(String var1, Class[] var2) {
        switch(var1.hashCode()) {
            case -1776922004:
                if (var1.equals("toString")) {
                    switch(var2.length) {
                        case 0:
                            return 4;
                    }
                }
                break;
            case -1295482945:
                if (var1.equals("equals")) {
                    switch(var2.length) {
                        case 1:
                            if (var2[0].getName().equals("java.lang.Object")) {
                                return 3;
                            }
                    }
                }
                break;
            case -75308287:
                if (var1.equals("getName")) {
                    switch(var2.length) {
                        case 0:
                            return 1;
                    }
                }
                break;
            case 3343801:
                if (var1.equals("main")) {
                    switch(var2.length) {
                        case 1:
                            if (var2[0].getName().equals("[Ljava.lang.String;")) {
                                return 0;
                            }
                    }
                }
                break;
            case 147696667:
                if (var1.equals("hashCode")) {
                    switch(var2.length) {
                        case 0:
                            return 5;
                    }
                }
                break;
            case 1984801293:
                if (var1.equals("setName")) {
                    switch(var2.length) {
                        case 1:
                            if (var2[0].getName().equals("java.lang.String")) {
                                return 2;
                            }
                    }
                }
        }

        return -1;
    }

    public int getIndex(Signature var1) {
        String var10000 = var1.toString();
        switch(var10000.hashCode()) {
            case -1184972270:
                if (var10000.equals("setName(Ljava/lang/String;)V")) {
                    return 2;
                }
                break;
            case 1218144844:
                if (var10000.equals("getName()Ljava/lang/String;")) {
                    return 1;
                }
                break;
            case 1341835395:
                if (var10000.equals("main([Ljava/lang/String;)V")) {
                    return 0;
                }
                break;
            case 1826985398:
                if (var10000.equals("equals(Ljava/lang/Object;)Z")) {
                    return 3;
                }
                break;
            case 1913648695:
                if (var10000.equals("toString()Ljava/lang/String;")) {
                    return 4;
                }
                break;
            case 1984935277:
                if (var10000.equals("hashCode()I")) {
                    return 5;
                }
        }

        return -1;
    }

    public int getMaxIndex() {
        return 5;
    }
}
